import { Module } from '@nestjs/common';
import { UploadService } from './upload.service';
import { UploadController } from './upload.controller';
import { MulterModule } from '@nestjs/platform-express';  // 是在 platform-express 包中引入, 这是 nestjs 自带的包
import { diskStorage } from 'multer';
import { extname, join } from 'path';

@Module({
  imports: [MulterModule.register({      // MulterModule有两个方法 register 和 registerAsync ,使用前一个 异步的
    storage: diskStorage({             // 设置文件存储目录
      destination: join(__dirname, '../file'),
      filename: (req, file, callback) => {       // 重命名文件名
        const randomName = Array(32).fill(null).map(() => (Math.round(Math.random() * 16)).toString(16)).join('');  // 生成随机文件名，也可以用时间戳
        return callback(null, `${randomName}${extname(file.originalname)}`);   // extname(file.originalname) 获取文件后缀名
      }
    })
  })],
  controllers: [UploadController],
  providers: [UploadService],
})
export class UploadModule {}
